1. Field of the Invention
The present invention relates to protocols for access to local area networks (LAN) and more particularly to protocols for token access controllers for local access networks.
2. Description of the Prior Art
Local Area Networks, which are usually privately owned communication systems with data rates in excess of one hundred thousand bits per second, can have a number of different topologies. A LAN has a number of nodes; each node is some type of device such as a mainframe computer, a printer, a micro-computer or a terminal. A LAN permits nodes to communicate with each other on the network. A node usually has a host processor, some memory and it can have other components such as a printer or a disc drive.
Among the more common topologies used for LANs are the star topology, the ring topology, and bus topology (FIG. 1). When a star topology is used (FIG. 1A), all nodes 10 in the network communicate with each other only with the explicit permission of a central node 12. In a ring topology, (FIG. 1B) each node 14 can only communicate directly with one of the two adjacent nodes of the ring. And information that is to be communicate to a non-adjacent node must be transmitted through those nodes between the source of the message and its destination. In a bus topology, (FIG. 1C) each node 16 can communicate directly with any other node through the bus 18. Each topology has its advantages and drawbacks.
An advantage of both the star topology and the ring topology is that the protocol for allowing access by a node to the network is relatively simple. The drawbacks of a star topology are a high initial cost, reliability problems, and the difficulty of reconfiguring the network to accept new nodes. The drawbacks with ring topologies are that a ring requires active taps and reliability is not good because if one node of the ring fails, the entire ring ceases to function.
On the other hand, a bus topology can be easily reconfigured to accept new nodes, it can be media independent, and the distributed control to the various nodes of the network improves the reliability of the network.
A major disadvantage of using a bus is that a complex protocol is required to prevent two nodes from transmitting simultaneously. A number of protocols have been developed to arbitrate access to the bus. Among the more sophisticated of these protocols are token protocols.
Token protocols establish a logical loop for the members of the computer network. The four-node bus network shown in FIG. 2A has a token, which is the right to transmit information on the network bus. The token is passed from node to node via a predetermined field. Only the node that currently has the token has access to transmit on the bus except that a node that just received a transmission may transmit a confirmation message called an acknowledgement. Each node has its own unique identity address (MA) and the address of the device it will send the token to after finishing its transmission. For example, if a node having an address set to 19 (MA=19) has the token, all the other devices on the network cannot have access to the bus 16. While node MA=19 (node 19) has the token, it can send a message to any other node in the local network. When node 19 has finished sending its messages, node 19 will then pass the token to the member of the network whose address is loaded in node 19's next or successor address (NA) register. In this example, node 19's next address is node 54. When node 54 is finished sending its messages, it will send the token to the device whose address is in device 54's next address register. In this case, that node is node 87. When node 87 has sent its messages, it will in turn send the token to node 101. Node 101 will return the token to node 19 in this example. Dotted lines 22 show how the token is passed from node to node in a logical loop. This process will repeat itself until the token is lost (e.g., noise on the bus), one of the nodes of this LAN is taken off the network (e.g., its power is turned off), a duplicate token is erroneously created causing two nodes to transmit simultaneously, or a new node is to be added to the network.
In the latter case, the addition of a node to the loop requires that the next address (NA) of one of the current nodes must be changed to the address of the device requesting entry into the loop. In turn, this new entrant must have as its next address its predecessor's former next address. Thus, in FIG. 2B with node 89 entering the logical ring, node 89 will now have as its next address NA=101 and node 87 will have as its next address NA=89. The identity and next address of each node do not have to be in numerical order as as the assignment of next addresses forms the logical loop.
A number of implementations of token protocols for bus topologies are available. Generally, the token protocols are implemented by those access controllers. Each node has a token access controller that connects that node to the bus.
Most of the bus topology systems that use a token method for allocating access to the bus are machine specific. In other words, these machines are designed to work with each other and with no other machines. One example is the token access controller for the Datapoint Corporation's computer system. Datapoint has developed a system called ARCNET, which is a LAN using token access controllers for bus arbitration. Furthermore, the current implementation of Datapoint design also requires special additional hardware including an external RAM buffer. ARCNET also requires a special format for its information transmission so only those devices that can use the ARCNET format can be included in nodes on the network. The number of frames that can be put onto the queue for transmission by a node is limited due to the size of the RAM buffer.
Accordingly, it is an object of the present invention to provide a token access controller and a token access protocol which interfaces between a host system and any common transmission medium. It is another object of this invention to provide a protocol that easily allows additional nodes to be coupled to the token ring. It is a further object of this invention that the transfer of data to or from the network is accomplished with a minimal amount of involvement with the host system. Furthermore, it is an additional object of this invention to provide a controller that allows recovery of the system in case there are two token on the system or a tokens is lost.